﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Legend.Component.Common;

namespace Legend.Component.Interface
{
    public abstract class IMovement : IUpdatable
    {
        private Legend.Object.GameObject owner;
        private Vector3 position;
        private Vector3 direction;

        public Vector3 Position
        {
            get { return position; }
            set { position = value; }
        }
        public Vector3 Direction
        {
            get { return direction; }
            set { direction = value; }
        }
           
        public System.Type UniqueType
        {
            get { return typeof(IMovement); }
        }
        public Legend.Object.GameObject Owner
        {
            get { return owner; }
            set { owner = value; }
        }

        public abstract Matrix GetTransform();
        public abstract void Update(Microsoft.Xna.Framework.GameTime gameTime, Microsoft.Xna.Framework.Content.ContentManager contentManager);
        public abstract void Rotate(Vector3 axis, float rotateRadian);
    }
}
